Liskov substitution principle
OBJECT-ORIENTED PROGRAMMING PRINCIPLE STATING THAT, IN A COMPUTER PROGRAM, IF S IS A SUBTYPE OF T, THEN OBJECTS OF TYPE T MAY BE REPLACED WITH OBJECTS OF TYPE S WITHOUT ALTERING ANY OF THE DESIRABLE PROPERTIES OF THE PROGRAM (CORRECTNESS, ETC.)
Liskov Substitution Principle; Substitutability; Liskov substitution
<
programming, theory> (LSP) The principle that
object-oriented functions that use
pointers or
references to a
base class must be able to use
objects of
a
derived class without knowing it.
Barbara
Liskov first wrote it as follows: If for each object
o1 of type S there is an object o2 of type T such that for all
programs P defined in terms of T, the behaviour of P is
unchanged when o1 is substituted for o2 then S is a
subtype
of T.
A function that violates the LSP uses a reference to a base
class and must know about all the derivatives of that base
class. Such a function violates the
open/closed principle
because it must be modified whenever a new derivative of the
base class is created.
[
Liskov, B. Data Abstraction and Hierarchy, SIGPLAN
Notices. 23(5), May 1988].
(2001-09-14)